Core Java学习笔记(八)--泛型

泛型基础

  1. 为什么引入泛型

    • 装入数据的类型都被当作Object对待,从来丢失自己实际类型,获取数据时需要强制转型
    • 将类型转换时的类型检查从运行时提前到了编译时,具有更好的可读性和安全性
    • 代码可以被不同类型的对象重用
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      import java.util.ArrayList;
      public class GenericTest {
      public static void main(String[] args) {
      ArrayList arraylist = new ArrayList(); //定义ArrayList集合
      //ArrayList<String> arraylist = new ArrayList<String>();
      arraylist.add("11"); //存入字符串类型
      arraylist.add("22");
      //arraylist.add(33); 使用泛型编译期类型检查
      for (int i = 0; i < arraylist.size(); i++) {
      /*存入数据均作为Object看待,取出必须强制转换
      33无法输出,Interger对象无法直接转换为String,需要调用toString方法
      使用泛型则不需要强制转换 */
      String name = (String) arraylist.get(i);
      System.out.println("name:" + name);
      }
      }
      }
  2. 泛型类:实例化类的时候指明泛型的具体类型

    1
    2


  3. 泛型方法:调用方法的时候指明泛型的具体类型

  4. 泛型接口

泛型限定 extends super

泛型擦除

约束与局限性

泛型类型的继承规则

通配符

0%